This invention is directed to the flight control of an unmanned aerial vehicle, and in particular, a system for parallel processing inputs from sensors to control a multi-rotor unmanned aerial vehicle.
Reference is now made to FIG. 1 in which an unmanned aerial vehicle (UAV) generally indicated as 10, as constructed in accordance with the prior art, is shown. UAV 10 is a free floating aerial platform 12. A plurality of rotors 14a, 14b, 14c and 14d in this example are attached to platform 12. Each rotor 14a-14d includes respective motor 16a-16d which is mechanically coupled to a respective propeller 18a-18d. Rotors 14a-14d are operated under the control of the control system 20 as known in the art.
It should be noted that multi-rotor UAVs have, at least for the purposes of the prior art and the invention, at least two rotors. Unlike fixed wing aircraft, a multi-rotor UAV 10 can be controlled with six degrees of freedom. As a result, UAVs 10 lend themselves to applications where other aircraft are not viable. Helicopters also possess this ability to move at six degrees of freedom, but in application provide only moderately stable platforms for applications such as still photography, filming, surveillance, and remote sensing.
Although relatively simplistic in structure, control of flight of a multi-rotor UAV 10 is both subtle and complex. Reference is now made to FIG. 2 in which a control system 20 constructed in accordance with the prior art is provided. Control system 20 includes a computing device or microprocessor 22 at the heart of the system and acts as an onboard inertial motion unit operating on inputs from a variety of sensors. These sensors may include gyroscope array 24, including at least one gyroscope sensor 24a, 24b, 24c for each Cartesian orientation such as the X-X axis, Y-Y axis, and Z-Y axis respectively. Similarly accelerometer sensor array 26 may include respective accelerometers 26a, 26b, 26c for detecting motion in each of the X, Y, and Z axis directions. Magnetometer array 28 includes magnetometers 28a, 28b, 28c for providing inputs for measuring geographical direction and bearing along each of the X axis, Y axis and Z axis. A pressure sensor 30 provides an output for measuring altitude and global positioning system (GPS) 32 provides latitude and longitude inputs to computer 22 and vision sensor 34 provide an input for horizon and absolute ground movement.
Computer 22 processes all of these inputs to provide control signals to each of motorized rotors 14a-14d. Integration of the motion data by computer 22 results in a stable flight for the UAV 10. There are two modes of navigation of a multi-rotor UAV: manual or autonomous. The need for a powerful computer 22 is a function of the mode of operation. In manual operation, a remote control system provides the biasing signals to onboard control system 20 to cause the rotors 14a-14d to move platform 12 in one of six directions: up, down, forward, backward, right and left.
Up and down translations are affected by changes in the overall thrust of the combination of the motorized propellers 18a-18d, i.e., controlling the motor to change the relative speed of one or more propellers 18a with respect to the remaining propellers, or all of the propellers in unison. Lateral motions of right, left, forward and backward are the result of a combination of roll and antiroll of the multi-rotor UAV 10 about either of two orthogonal axis, X or Y.
Autonomous control is achieved using a high level software program running on computer 22. This program utilizes the data provided by the various sensors 24, 26, 28, 30, 32 and 34 and the input data to operate in accordance with a set of rules to provide the needed roll and thrust control actuations to multi-rotor UAV 10. By way of example, one roll may be a navigational waypoint on a pre-selected geographical flight pattern. The program processes the sensor input data and quickly outputs necessary actuation signals in real time in order to provide stable flight. The prior art serially processes the interleaved sensor input signals. This large amount of computer processing requires an expensive sophisticated computer capable of processing multiple dynamic inputs in real time to control a plurality of motors in unison to maintain flights stable enough to support an activity such as video surveillance. As a result, computer 22 is expensive and may require significant real estate upon platform 12. However, serial operation results in some instability even with the use of the high priced computers.
Accordingly, a control system which overcomes the shortcomings of the prior art is desired.